Businesses worldwide store information in databases, including Fortune 500 companies, as well as small and mid-size enterprises. However, there is a problem in that independent and heterogeneous databases are used to store application data for businesses. In essence, data and processes are locked away in legacy and incumbent information systems for each business. Each business stores valuable data and processes knowledge in a manner that is dependent of location and/or format.
Businesses now maintain an extensive electronic infrastructure including a complex combination of software applications, database engines, hardware platforms, and networking technologies. However, there is commonly a significant problem in sharing data between applications and databases across a network because many software elements use proprietary formats. This problem exists when sharing data within a single business, as well as between different businesses. There are many problems when attempting to integrate data stored in these independent and heterogeneous databases.
Information has previously been stored in distributed data sources. A number of enterprise application integration (EAI) tools are known for performing automated application-to-application integration in order to create focused applications composed of information stored in distributed data sources. These traditional EAI tools focus on integration that duplicates data in two or more systems which can result in consequent data synchronization problems. However, duplication of data requires that data be physically copied to a new location which can result in problems because of duplication of information that can become inconsistent when data is changed in one location. Accordingly, it is undesirable to duplicate data in order to provide an integrated view.
Applications exist for accessing multiple, disparate databases. However, these techniques have required the inclusion of substantial logic within client applications in order to access and integrate the retrieved data. This logic is frequently duplicated in many client applications that need access to the same disparate data.
For example, FIG. 1 illustrates a typical configuration of applications 10–13 that access multiple data sources 14–25. This configuration is highly likely to cause long-term problems with inconsistent results and poor maintainability of the applications 10–13. There is a potential for conflict to exist between the algorithms 26–29 that integrate data because logic is duplicated or rewritten for each client application. Additionally, if a change is made to the underlying data source structure, the change needs to be reflected in every client application that utilizes that data element. This can be a very tedious, time-consuming, and error-prone endeavor. For example, a change may entail restructuring a database table or converting a FoxPro® database 23 to an Oracle® database 14.